package editorsvg.editor.comandos;

import editorsvg.editor.documento.ConjuntoElementos;
import editorsvg.editor.documento.ElementoEditable;
import editorsvg.editor.documento.ElementoGrupo;
import editorsvg.editor.documento.RestauradorPosicionElementos;

/**
 *
 * @author Jorge Berjano
 */
public class ComandoAgrupar implements Comando {

    private ElementoEditable documento;
    private ConjuntoElementos elementos;
    private RestauradorPosicionElementos restaurador;
    private ElementoGrupo grupo;

    public ComandoAgrupar(ElementoEditable documento, ConjuntoElementos elementos) {

        this.documento = documento;
        this.elementos = elementos;
        restaurador = new RestauradorPosicionElementos(this.documento, this.elementos);
    }

    @Override
    public void hacer() {
        grupo = documento.agruparElementos(elementos);
    }

    @Override
    public void deshacer() {
        if (grupo == null) {
            return;
        }
        documento.borrarElemento(grupo);
        restaurador.restaurar();
    }
}
